#include <iostream>
#define MaxSize 1000
using namespace std;
typedef struct SNode{
	char data[MaxSize];
	int top;
}*Stack;
void Create(Stack &s);
void Push(Stack &s,char str[]);
void Pop(Stack &s,char &e);
void symmetry(Stack &s,char str[]);
int main()
{
	Stack S;
	Create(S);
	char str[MaxSize];
	gets(str);
	symmetry(S,str);
	return 0;
}
void Create(Stack &s)
{
	s=new SNode;
	s->top=-1;
}
void Push(Stack &s,char str[])
{
	if (s->top==MaxSize-1)
		return ;
	for (int i=0;str[i];i++)
		s->data[++s->top]=str[i];
}
void Pop(Stack &s,char &e)
{
	if (s->top==-1)
		e='\0';
	else{
		e=s->data[s->top];
		s->top--;
	}	
}
void symmetry(Stack &s,char str[])
{
	int flag=1;
	char e;
	Push(s,str);
	for (int i=0;str[i];i++){
		Pop(s,e);
		if (e!=str[i]){
			flag=0;
			break;
		}
	}
	if (flag==1)
		cout<<"yes";
	else
		cout<<"no";
}
